import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
import conf from '../api/apiConf'

Vue.use(Vuex)

const store = new Vuex.Store({
  state: {
    isShowLoading: false, // 全局 loading
    // 左侧菜单栏数据
    menuItems: [{
      name: 'home', // 要跳转的路由名称 不是路径
      size: 18, // icon大小 非必填
      type: 'md-home', // icon类型 非必填
      text: '主页', // 文本内容
    },
    {
      text: 'admin用户',
      type: 'ios-contact',
      size: 18,
      children: [{
        type: 'ios-grid',
        name: 'users',
        size: 18,
        text: '用户管理',
      },],
    },
    {
      text: 'admin角色',
      type: 'md-contacts',
      size: 18,
      children: [{
        type: 'ios-grid',
        name: 'roles',
        size: 18,
        text: '角色查询',
      },],
    },
    {
      text: 'admin产品',
      type: 'md-lock',
      size: 18,
      children: [{
        type: 'ios-grid',
        name: 'queryproducts',
        size: 18,
        text: '产品管理',
      },
      {
        type: 'ios-options',
        name: 'typeproducts',
        size: 18,
        text: '产品类型管理',
      },
      {
        type: 'ios-camera',
        name: 'adminProImg',
        size: 18,
        text: '产品图片管理',
        },
        {
          type: 'md-image',
          name: 'adminBanner',
          size: 18,
          text: 'banner管理',
        },
      ],
    },
    {
      text: 'admin购物车',
      type: 'ios-cart',
      size: 18,
      children: [{
        type: 'ios-grid',
        name: 'carts',
        size: 18,
        text: '购物车查询',
        // hidden 属性 隐藏此菜单 可以通过在地址栏上输入对应的 URL 来显示页面
        // hidden: true,
      },],
    },
    {
      text: 'admin菜单',
      type: 'md-albums',
      size: 18,
      children: [
      // {
      //   type: 'ios-grid',
      //   name: 'menus',
      //   size: 18,
      //   text: '菜单查询',
      //   hidden 属性 隐藏此菜单 可以通过在地址栏上输入对应的 URL 来显示页面
      //   hidden: true,
      // },
      {
        type: 'md-create',
        name: 'admin_menus',
        size: 18,
        text: '菜单操作',
        // hidden 属性 隐藏此菜单 可以通过在地址栏上输入对应的 URL 来显示页面
        // hidden: true,
        },
        {
          type: 'ios-key',
          name: 'admin_power',
          size: 18,
          text: '权限管理',
          // hidden 属性 隐藏此菜单 可以通过在地址栏上输入对应的 URL 来显示页面
          // hidden: true,
        }
      ],
    },
    // {
    //   text: '系统消息',
    //   type: 'md-cog',
    //   size: 18,
    //   children: [{
    //     type: 'ios-grid',
    //     name: 'system',
    //     size: 18,
    //     text: '系统查询',
    //     hidden: true,
    //     // hidden 属性 隐藏此菜单 可以通过在地址栏上输入对应的 URL 来显示页面
    //   }],
    // },
    ],
  },
  mutations: {
    setMenus (state, items) {
      state.menuItems = [...items]
    },
    setLoading (state, isShowLoading) {
      state.isShowLoading = isShowLoading
    },
    
  },
  actions: {
    
    /***
     * 菜单的渲染最好本地配置一份菜单数据
     * 
     * 
     * 
    */
    async queryMenus(context, opt = {}) {
      const { data } = await axios.get(conf.GetMenusByUser);
      if (data.status == 200) {
        
        // context.commit('setMenus',data.data)
        opt.succ()
      } else {
        opt.fail()
      }
    }
  }
})

export default store